%%% PREPENDED STATISTICS GENERATION. EDIT THIS FILE TO ADD THIS TO THE END
%%% OF ALL GENERATED STATISTICS WITH IMCONVERT


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BEGIN -- NUMBER OF PIXELS && NUMBER OF OBJECTS PER LAYER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (1);
hold on,subplot(2,1,1), plot(number_of_on_pixels_DT, 'r');
hold on,subplot(2,1,1), plot(number_of_on_pixels_saliency, 'g');
hold on,subplot(2,1,1), plot(number_of_on_pixels_DTsaliency, 'b');
hold on,subplot(2,1,1), plot(number_of_on_pixels_closing, 'm');
hold on,subplot(2,1,1), plot(number_of_on_pixels_pretreefilter, 'y');
hold on,subplot(2,1,1), plot(number_of_on_pixels_posttreefilter, 'k');
legend('DT', 'Saliency', 'Combined', 'Closing', 'Doubleskel filter', 'Post-Treefilter');
title('Number of pixels per layer');

hold on,subplot(2,1,2), plot(number_of_objects_DT, 'r');
hold on,subplot(2,1,2), plot(number_of_objects_saliency, 'g');
hold on,subplot(2,1,2), plot(number_of_objects_DTsaliency, 'b');
hold on,subplot(2,1,2), plot(number_of_objects_closing, 'm');
hold on,subplot(2,1,2), plot(number_of_objects_pretreefilter, 'y');
hold on,subplot(2,1,2), plot(number_of_objects_posttreefilter, 'k');
legend('DT', 'Saliency', 'Combined', 'Closing', 'Doubleskel filter', 'Post-Treefilter');
title('Number of objects per layer');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% END -- NUMBER OF PIXELS && NUMBER OF OBJECTS PER LAYER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BEGIN -- IMAGE HISTOGRAM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (2);
hold on;
hr = bar(0:255, IMhistogram_raw, 'r');
set(get(hr, 'children'), 'facea', 0.5);
set(get(hr, 'children'), 'edgec', 'r');
set(get(hr, 'children'), 'edgea', 0.5);
hi = bar(0:255, IMhistogram_removed_islands, 'g');
set(get(hi, 'children'), 'facea', 0.5);
set(get(hi, 'children'), 'edgec', 'g');
set(get(hi, 'children'), 'edgea', 0.5);
hl = bar(0:255, IMhistogram_removed_layers, 'b');
set(get(hl, 'children'), 'facea', 0.5);
set(get(hl, 'children'), 'edgec', 'b');
set(get(hl, 'children'), 'edgea', 0.5);
title('Histogram of the image in various processing stages');
legend('Original Image', 'Removed Small Islands (CCA)' ,'After Layer Removal');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% END -- NUMBER OF PIXELS && NUMBER OF OBJECTS PER LAYER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BEGIN -- VARIOUS STATISTICS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fprintf('Image Dimensions             : %d x %d\n', IMAGE_WIDTH_raw, IMAGE_HEIGHT_raw);
fprintf('#pixels                      : %d\n', IMAGE_WIDTH_raw * IMAGE_HEIGHT_raw);
fprintf('Total number of points (raw) : %10f\n', sum(number_of_on_pixels_DT));
fprintf('Total number of points after : %10f\n', sum(number_of_on_pixels_posttreefilter));
fprintf('FileSize                     : %10fKB\n', FILE_SIZE / 1024.0);
fprintf('Bits per disk                : %10f\n', 8*FILE_SIZE / sum(number_of_on_pixels_posttreefilter));
fprintf('Bits per pixel               : %10f\n', 8*FILE_SIZE / (IMAGE_WIDTH_raw * IMAGE_HEIGHT_raw));
fprintf('Average path length for DT   : %10f\n', mean(number_of_on_pixels_DT./(number_of_objects_DT + (number_of_objects_DT == 0))));
fprintf('Average path length for sal  : %10f\n', mean(number_of_on_pixels_saliency./(number_of_objects_saliency + (number_of_objects_saliency == 0))));
fprintf('Average path length for both : %10f\n', mean(number_of_on_pixels_DTsaliency./(number_of_objects_DTsaliency + (number_of_objects_DTsaliency == 0))));
fprintf('Average path length for close: %10f\n', mean(number_of_on_pixels_closing./(number_of_objects_closing + (number_of_objects_closing == 0))));
fprintf('Average path length for dblsk: %10f\n', mean(number_of_on_pixels_pretreefilter./(number_of_objects_pretreefilter + (number_of_objects_pretreefilter == 0))));
fprintf('Average path length for tree : %10f\n', mean(number_of_on_pixels_posttreefilter./(number_of_objects_posttreefilter + (number_of_objects_posttreefilter == 0))));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% END -- VARIOUS STATISTICS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BEGIN -- DISPLAY THE IMAGES PER FILTER-STEP
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure (3)
hold on, subplot(1,3,1), imshow(IMimg_raw./256.0);
title('Original image');
hold on, subplot(1,3,2), imshow(IMimg_removed_islands./256.0);
title('After removing small islands');
hold on, subplot(1,3,3), imshow(IMimg_removed_layers./256.0);
title('After removing layers');

